/**
 * @file counter.h
 * @author your name (you@domain.com)
 * @brief
 * @version 0.1
 * @date 2025-07-03
 *
 * @copyright Copyright (c) 2025
 *
 */
#ifndef COUNTER_H
#define COUNTER_H
// 定义多个相同的结构体
#include "xmzTypeDefine.h"
#include "systemType.h"

Bool CTU_SInt(Bool CU, Bool R, SInt* PV, SInt* CV, CTU_SINT* counter);
Bool CTU_Int(Bool CU, Bool R, Int* PV, Int* CV, CTU_INT* counter);
Bool CTU_DInt(Bool CU, Bool R, DInt* PV, DInt* CV, CTU_DINT* counter);
Bool CTU_USInt(Bool CU, Bool R, USInt* PV, USInt* CV, CTU_USINT* counter);
Bool CTU_UInt(Bool CU, Bool R, UInt* PV, UInt* CV, CTU_UINT* counter);
Bool CTU_UDInt(Bool CU, Bool R, UDInt* PV, UDInt* CV, CTU_UDINT* counter);

Bool CTD_SInt(Bool CD, Bool LD, SInt* PV, SInt* CV, CTD_SINT* counter);
Bool CTD_Int(Bool CD, Bool LD, Int* PV, Int* CV, CTD_INT* counter);
Bool CTD_DInt(Bool CD, Bool LD, DInt* PV, DInt* CV, CTD_DINT* counter);
Bool CTD_USInt(Bool CD, Bool LD, USInt* PV, USInt* CV, CTD_USINT* counter);
Bool CTD_UInt(Bool CD, Bool LD, UInt* PV, UInt* CV, CTD_UINT* counter);
Bool CTD_UDInt(Bool CD, Bool LD, UDInt* PV, UDInt* CV, CTD_UDINT* counter);

Bool CTUD_SInt(Bool CU, Bool CD, Bool R, Bool LD, SInt* PV, SInt* CV, CTUD_SINT* counter);
Bool CTUD_Int(Bool CU, Bool CD, Bool R, Bool LD, Int* PV, Int* CV, CTUD_INT* counter);
Bool CTUD_DInt(Bool CU, Bool CD, Bool R, Bool LD, DInt* PV, DInt* CV, CTUD_DINT* counter);
Bool CTUD_USInt(Bool CU, Bool CD, Bool R, Bool LD, USInt* PV, USInt* CV, CTUD_USINT* counter);
Bool CTUD_UInt(Bool CU, Bool CD, Bool R, Bool LD, UInt* PV, UInt* CV, CTUD_UINT* counter);
Bool CTUD_UDInt(Bool CU, Bool CD, Bool R, Bool LD, UDInt* PV, UDInt* CV, CTUD_UDINT* counter);
#endif
